1. Technical Field
The present disclosure relates to transaction processing, and more particularly, to a system and method for executing distributed globally-ordered transactional workloads in replicated state machines.
2. Discussion of Related Art
The rapid development of cloud computing and networking infrastructure has improved the availability of business information systems across the globe. As a popular deployment paradigm, business applications often run in distributed datacenters. Clients connect to their local datacenters to minimize data access latency. To ensure business applications running in different datacenters share the same view of data, application developers often rely on cross-datacenter data replication services or global transaction support.
Some cloud systems adopt a primary-secondary deployment for data replication over multiple datacenters, in which one primary datastore has the most recent version of the data, and one or more secondary datastores asynchronously replicate updates from the primary datastore to local datastores. In such a system, since all write operations can only be performed on the primary datastore to ensure data consistency, data access of clients remote to the primary datastore may be delayed. Further, read operations on secondary datastores may yield stale results due to asynchronous replication, which may not be acceptable for business applications with high consistency requirements.
In addition, some cloud systems adopt a primary-primary deployment for data replication over multiple datacenters, in which any participating datastore can perform read and write operations while still maintaining a globally consistent data copy. In such a system, a transaction is either committed or aborted globally. That is, if one datastore fails to execute (e.g., as the result of deadlocks), an entire transaction is aborted.